Micron Document




Small Device C Compiler
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
The Small Device C Compiler (SDCC) is a free-software, partially retargetablecite-ref-1[1] C compiler for 8-bit microcontrollers. It is distributed under the GNU General Public License. The package also contains an assembler, linker, simulator and debugger. SDCC is a popular open-source C compiler for microcontrollers compatible with Intel 8051/MCS-51.cite-ref-2[2]cite-ref-3[3]cite-ref-4[4]

Contents


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Supported hosts

Sources, documentation, and binaries are available for Linux (32-bit and 64-bit), macOS (PPC and 64-bit), and Windows (32-bit and 64-bit).

Supported targets

The following include binary compatible derivatives:

Intel 8031, 8032, 8051, 8052; Maxim/Dallas DS80C390; C8051
• Padauk PDK14 and PDK15cite-ref-5[5]
Sharp SM83, the CPU found in the Nintendo Game Boy LR35902 SoC
Zilog Z80, Z180, eZ80 in Z80 mode; Rabbit Semiconductor 2000, 2000A, 3000, 3000A, 4000, 6000; Toshiba TLCS-90; Z80N (ZX Spectrum Next processor), R800.

Work in progress:

Microchip PIC16 and PIC18.cite-ref-6[6]cite-ref-7[7]
• Padauk PDK13.

Obsolete:

AVR microcontrollers used to be a supported target, but was made obsolete by avr-gcc in 2010 (SDCC 3.0.0).

See also

Z88DK - C compiler for Z80-based systems
cc65 - C compiler for 6502/65C02 systems

References

cite-note-11. Rainer Leupers, Peter Marwedel: "Retargetable Compiler Technology for Embedded Systems: Tools and Applications", page 126. Springer, 2001
cite-note-22. "Porting Contiki Operating System to RIEST2430" by Juan Wang, Wei Ma, and Dan Liu, published in "Emerging Intelligent Computing Technology and Applications", 2012, p. 383: "Due to the 8051 MCU’s unique characteristics, there are only a handful of toolchains available. The most noteworthy open source solution is the Small Device C Compiler (SDCC)."
cite-note-33. Lewin Edwards "Open-Source Robotics and Process Control Cookbook: Designing and Building Robust, Dependable Real-time Systems", 2005, p. 15: "Worse still, the only halfway decent open-source C compiler for the 8051 (sdcc) is exactly that—only halfway decent."
cite-note-44. citereflewin-a-r-w-edwards2006Lewin A. R. W. Edwards (2006). So, You Wanna be an Embedded Engineer: The Guide to Embedded Engineering, from Consultancy to the Corporate Ladder. p. 51.: "I personally prefer to use the free compiler package, sdcc. This is unquestionably the poor man's choice of 8051 C compilers, ... in any case, sdcc is perfectly adequate for hobbyist, low-volume and/or educational projects."
cite-note-55. Padauk website
cite-note-66. "SDCC - Small Device C Compiler". Retrieved 2013-01-20.
cite-note-77. Setting up the free compiler SDCC at MPLABX, Google Sites

External links

• SDCC homepage
• Sandeep Dutta - Anatomy of a Compiler. A Retargetable ANSI-C Compiler. "Circuit Cellar", issue 121, August 2000, page 35
• SDCC Open Knowledge Resource
• SDCC Open Knowledge Resource
• FOSDEM 2015 presentation on SDCC
• FOSDEM 2024 presentation on SDCC
• A port of FreeRTOS to 8051
• Using SDCC on the AT89C52 (8051 derivative)
• Using SDCC for PIC on Windows with MPLABX